﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
using System.Data;
using System.Data.Common;

namespace CAD.DAO
{
    public class DAOProveedores
    {

        /// <summary>
        /// Inserta un registro al origen de datos
        /// </summary>
        /// <param name="nombre">Nombre empleado</param>
        /// <returns>Id del empleado insertado</returns>
        public int Insertar(int LPROVEEDOR, string SNOMBRE, string STELEFONO, string SDIRECCION, string SDESCRIPCION_DSC, int ICONCURRENCIA)
        {
            List<DbParameter> lstParametros = new List<DbParameter>();
            DbParameter prmA = new SqlParameter();
            prmA.DbType = DbType.Int32;
            prmA.ParameterName = "@LPROVEEDOR_ID ";
            prmA.Direction = ParameterDirection.Output;
            lstParametros.Add(prmA);

            DbParameter prmB = new SqlParameter();
            prmB.DbType = DbType.String;
            prmB.ParameterName = "@SNOMBRE";
            prmB.Value = SNOMBRE;
            prmB.Direction = ParameterDirection.Input;
            lstParametros.Add(prmB);

            DbParameter prmC = new SqlParameter();
            prmC.DbType = DbType.String;
            prmC.ParameterName = "@STELEFONO";
            prmC.Value = STELEFONO;
            prmC.Direction = ParameterDirection.Input;
            lstParametros.Add(prmC);

            DbParameter prmD = new SqlParameter();
            prmD.DbType = DbType.String;
            prmD.ParameterName = "@SDIRECCION";
            prmD.Value = SDIRECCION;
            prmD.Direction = ParameterDirection.Input;
            lstParametros.Add(prmD);

            DbParameter prmeD = new SqlParameter();
            prmeD.DbType = DbType.String;
            prmeD.ParameterName = "@SDESCRIPCION_DSC";
            prmeD.Value = SDESCRIPCION_DSC;
            prmeD.Direction = ParameterDirection.Input;
            lstParametros.Add(prmeD);

            DbParameter prmDf = new SqlParameter();
            prmDf.DbType = DbType.String;
            prmDf.ParameterName = "@ICONCURRENCIA";
            prmDf.Value = 1;
            prmDf.Direction = ParameterDirection.Input;
            lstParametros.Add(prmDf);
            DbParameter prmDg = new SqlParameter();
            prmDg.DbType = DbType.Int32;
            prmDg.ParameterName = "@iEvento";
            prmDg.Value = 1;
            prmDg.Direction = ParameterDirection.Input;
            lstParametros.Add(prmDg);

            SQLConexion conProxy = new SQLConexion();
            if (conProxy.EjecutarDML(lstParametros, "dbo.SPABM_PROVEEDORES"))
                return Convert.ToInt32(prmA.Value);
            return -1;

        }
        public int Insertar(int LPROVEEDOR, string SNOMBRE, string STELEFONO, string SDIRECCION, string SDESCRIPCION_DSC, int ICONCURRENCIA, SqlTransaction transaccion)
        {
            List<DbParameter> lstParametros = new List<DbParameter>();
            DbParameter prmA = new SqlParameter();
            prmA.DbType = DbType.Int32;
            prmA.ParameterName = "@LPROVEEDOR_ID ";
            prmA.Direction = ParameterDirection.Output;
            lstParametros.Add(prmA);

            DbParameter prmB = new SqlParameter();
            prmB.DbType = DbType.String;
            prmB.ParameterName = "@SNOMBRE";
            prmB.Value = SNOMBRE;
            prmB.Direction = ParameterDirection.Input;
            lstParametros.Add(prmB);

            DbParameter prmC = new SqlParameter();
            prmC.DbType = DbType.String;
            prmC.ParameterName = "@STELEFONO";
            prmC.Value = STELEFONO;
            prmC.Direction = ParameterDirection.Input;
            lstParametros.Add(prmC);

            DbParameter prmD = new SqlParameter();
            prmD.DbType = DbType.String;
            prmD.ParameterName = "@SDIRECCION";
            prmD.Value = SDIRECCION;
            prmD.Direction = ParameterDirection.Input;
            lstParametros.Add(prmD);

            DbParameter prmeD = new SqlParameter();
            prmeD.DbType = DbType.String;
            prmeD.ParameterName = "@SDESCRIPCION_DSC";
            prmeD.Value = SDESCRIPCION_DSC;
            prmeD.Direction = ParameterDirection.Input;
            lstParametros.Add(prmeD);

            DbParameter prmDf = new SqlParameter();
            prmDf.DbType = DbType.String;
            prmDf.ParameterName = "@ICONCURRENCIA";
            prmDf.Value = 1;
            prmDf.Direction = ParameterDirection.Input;
            lstParametros.Add(prmDf);
            DbParameter prmDg = new SqlParameter();
            prmDg.DbType = DbType.Int32;
            prmDg.ParameterName = "@iEvento";
            prmDg.Value = 1;
            prmDg.Direction = ParameterDirection.Input;
            lstParametros.Add(prmDg);

            SQLConexion conProxy = new SQLConexion();
            if (conProxy.EjecutarDML(lstParametros, "dbo.SPABM_PROVEEDORES", transaccion))
                return Convert.ToInt32(prmA.Value);
            return -1;

        }
        public bool Actualizar(int LPROVEEDOR_ID, string SNOMBRE, string STELEFONO, string SDIRECCION, string SDESCRIPCION_DSC, int ICONCURRENCIA)
        {
            List<DbParameter> lstParametros = new List<DbParameter>();

            DbParameter prmA = new SqlParameter();
            prmA.DbType = DbType.Int32;
            prmA.ParameterName = "@LPROVEEDOR_ID ";
            prmA.Value = LPROVEEDOR_ID;
            prmA.Direction = ParameterDirection.Input;
            lstParametros.Add(prmA);

            DbParameter prmB = new SqlParameter();
            prmB.DbType = DbType.String;
            prmB.ParameterName = "@SNOMBRE";
            prmB.Value = SNOMBRE;
            prmB.Direction = ParameterDirection.Input;
            lstParametros.Add(prmB);

            DbParameter prmC = new SqlParameter();
            prmC.DbType = DbType.String;
            prmC.ParameterName = "@STELEFONO";
            prmC.Value = STELEFONO;
            prmC.Direction = ParameterDirection.Input;
            lstParametros.Add(prmC);

            DbParameter prmD = new SqlParameter();
            prmD.DbType = DbType.String;
            prmD.ParameterName = "@SDIRECCION";
            prmD.Value = SDIRECCION;
            prmD.Direction = ParameterDirection.Input;
            lstParametros.Add(prmD);

            DbParameter prmeD = new SqlParameter();
            prmeD.DbType = DbType.String;
            prmeD.ParameterName = "@SDESCRIPCION_DSC";
            prmeD.Value = SDESCRIPCION_DSC;
            prmeD.Direction = ParameterDirection.Input;
            lstParametros.Add(prmeD);

            DbParameter prmDf = new SqlParameter();
            prmDf.DbType = DbType.String;
            prmDf.ParameterName = "@ICONCURRENCIA";
            prmDf.Value = ICONCURRENCIA;
            prmDf.Direction = ParameterDirection.Input;
            lstParametros.Add(prmDf);
            DbParameter prmDg = new SqlParameter();
            prmDg.DbType = DbType.Int32;
            prmDg.ParameterName = "@iEvento";
            prmDg.Value = 2;
            prmDg.Direction = ParameterDirection.Input;
            lstParametros.Add(prmDg);


            SQLConexion conProxy = new SQLConexion();
            return conProxy.EjecutarDML(lstParametros, "dbo.SPABM_PROVEEDORES");
        }
        public bool Eliminar(int LPROVEEDOR_ID)
        {
            List<DbParameter> lstParametros = new List<DbParameter>();

            DbParameter prmA = new SqlParameter();
            prmA.DbType = DbType.Int32;
            prmA.ParameterName = "@LPROVEEDOR_ID";
            prmA.Value = LPROVEEDOR_ID;
            prmA.Direction = ParameterDirection.Input;
            lstParametros.Add(prmA);
            DbParameter prmDg = new SqlParameter();
            prmDg.DbType = DbType.Int32;
            prmDg.ParameterName = "@iEvento";
            prmDg.Value = 3;
            prmDg.Direction = ParameterDirection.Input;
            lstParametros.Add(prmDg);
            SQLConexion conProxy = new SQLConexion();
            return conProxy.EjecutarDML(lstParametros, "dbo.SPABM_PROVEEDORES");
        }
        public DataSet TraerProveedor()
        {
          
            List<DbParameter> lstParametros = new List<DbParameter>();
            DbParameter prmD = new SqlParameter();
            prmD.DbType = DbType.String;
            prmD.ParameterName = "@iEvento";
            prmD.Value = 4;
            prmD.Direction = ParameterDirection.Input;
            lstParametros.Add(prmD);
            SQLConexion conProxy = new SQLConexion();
            return conProxy.EjecutarConsulta(lstParametros, "dbo.SPABM_PROVEEDORES");
        }
        public DataSet TraerProveedorXId(int LPROVEEDOR_ID)
        {
            List<DbParameter> lstParametros = new List<DbParameter>();

            DbParameter prmA = new SqlParameter();
            prmA.DbType = DbType.Int32;
            prmA.ParameterName = "@LPROVEEDOR_ID";
            prmA.Value = LPROVEEDOR_ID;
            prmA.Direction = ParameterDirection.Input;
            lstParametros.Add(prmA);

            DbParameter prmD = new SqlParameter();
            prmD.DbType = DbType.Int32;
            prmD.ParameterName = "@iEvento";
            prmD.Value = 5;
            prmD.Direction = ParameterDirection.Input;
            lstParametros.Add(prmD);

            SQLConexion conProxy = new SQLConexion();
            return conProxy.EjecutarConsulta(lstParametros, "dbo.SPABM_PROVEEDORES");
        }
        public DataSet TraerProveedorXNombre(string SNOMBRE)
        {
            List<DbParameter> lstParametros = new List<DbParameter>();

            DbParameter prmA = new SqlParameter();
            prmA.DbType = DbType.String;
            prmA.ParameterName = "@SNOMBRE";
            prmA.Value = SNOMBRE;
            prmA.Direction = ParameterDirection.Input;
            lstParametros.Add(prmA);
            DbParameter prmD = new SqlParameter();
            prmD.DbType = DbType.Int32;
            prmD.ParameterName = "@iEvento";
            prmD.Value = 7;
            prmD.Direction = ParameterDirection.Input;
            lstParametros.Add(prmD);

            SQLConexion conProxy = new SQLConexion();
            return conProxy.EjecutarConsulta(lstParametros, "dbo.SPABM_PROVEEDORES");
        }
    }
}
